arm64: dts: meson-gxl-s805x: reduce initial Mali450 core frequency
diff mbox series

Message ID 20200618132737.14243-1-narmstrong@baylibre.com
State Mainlined
Commit b2037dafcf082cd24b88ae9283af628235df36e1
Headers show
Series
  • arm64: dts: meson-gxl-s805x: reduce initial Mali450 core frequency
Related show

Commit Message

Neil Armstrong June 18, 2020, 1:27 p.m. UTC
When starting at 744MHz, the Mali 450 core crashes on S805X based boards:
 lima d00c0000.gpu: IRQ ppmmu3 not found
 lima d00c0000.gpu: IRQ ppmmu4 not found
 lima d00c0000.gpu: IRQ ppmmu5 not found
 lima d00c0000.gpu: IRQ ppmmu6 not found
 lima d00c0000.gpu: IRQ ppmmu7 not found
 Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP
 Modules linked in:
 CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.7.2+ #492
 Hardware name: Libre Computer AML-S805X-AC (DT)
 pstate: 40000005 (nZcv daif -PAN -UAO)
 pc : lima_gp_init+0x28/0x188
 ...
 Call trace:
  lima_gp_init+0x28/0x188
  lima_device_init+0x334/0x534
  lima_pdev_probe+0xa4/0xe4
 ...
 Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

Reverting to a safer 666Mhz frequency on the S805X that doesn't use the
GP0 PLL makes it more stable.

Fixes: fd47716479f5 ("ARM64: dts: add S805X based P241 board")
Fixes: 0449b8e371ac ("arm64: dts: meson: add libretech aml-s805x-ac board")
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 .../amlogic/meson-gxl-s805x-libretech-ac.dts  |  2 +-
 .../boot/dts/amlogic/meson-gxl-s805x-p241.dts |  2 +-
 .../boot/dts/amlogic/meson-gxl-s805x.dtsi     | 24 +++++++++++++++++++
 3 files changed, 26 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi

Comments

Kevin Hilman June 29, 2020, 11:19 p.m. UTC | #1
On Thu, 18 Jun 2020 15:27:37 +0200, Neil Armstrong wrote:
> When starting at 744MHz, the Mali 450 core crashes on S805X based boards:
>  lima d00c0000.gpu: IRQ ppmmu3 not found
>  lima d00c0000.gpu: IRQ ppmmu4 not found
>  lima d00c0000.gpu: IRQ ppmmu5 not found
>  lima d00c0000.gpu: IRQ ppmmu6 not found
>  lima d00c0000.gpu: IRQ ppmmu7 not found
>  Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP
>  Modules linked in:
>  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.7.2+ #492
>  Hardware name: Libre Computer AML-S805X-AC (DT)
>  pstate: 40000005 (nZcv daif -PAN -UAO)
>  pc : lima_gp_init+0x28/0x188
>  ...
>  Call trace:
>   lima_gp_init+0x28/0x188
>   lima_device_init+0x334/0x534
>   lima_pdev_probe+0xa4/0xe4
>  ...
>  Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
> 
> [...]

Applied, thanks!

[1/1] arm64: dts: meson-gxl-s805x: reduce initial Mali450 core frequency
      commit: b2037dafcf082cd24b88ae9283af628235df36e1

Best regards,
patchwork-bot+linux-amlogic@kernel.org July 7, 2020, 6:51 p.m. UTC | #2
Hello:

This patch was applied to khilman/linux-amlogic.git (refs/heads/for-next).

On Thu, 18 Jun 2020 15:27:37 +0200 you wrote:
> When starting at 744MHz, the Mali 450 core crashes on S805X based boards:
>  lima d00c0000.gpu: IRQ ppmmu3 not found
>  lima d00c0000.gpu: IRQ ppmmu4 not found
>  lima d00c0000.gpu: IRQ ppmmu5 not found
>  lima d00c0000.gpu: IRQ ppmmu6 not found
>  lima d00c0000.gpu: IRQ ppmmu7 not found
>  Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP
>  Modules linked in:
>  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.7.2+ #492
>  Hardware name: Libre Computer AML-S805X-AC (DT)
>  pstate: 40000005 (nZcv daif -PAN -UAO)
>  pc : lima_gp_init+0x28/0x188
>  ...
>  Call trace:
>   lima_gp_init+0x28/0x188
>   lima_device_init+0x334/0x534
>   lima_pdev_probe+0xa4/0xe4
>  ...
>  Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
> 
> [...]


Here is a summary with links:
  - arm64: dts: meson-gxl-s805x: reduce initial Mali450 core frequency
    https://git.kernel.org/khilman/linux-amlogic/c/b2037dafcf082cd24b88ae9283af628235df36e1

You are awesome, thank you!

Patch
diff mbox series

diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
index 6a226faab183..9e43f4dca90d 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
@@ -10,7 +10,7 @@ 
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/sound/meson-aiu.h>
 
-#include "meson-gxl-s905x.dtsi"
+#include "meson-gxl-s805x.dtsi"
 
 / {
 	compatible = "libretech,aml-s805x-ac", "amlogic,s805x",
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts
index 867e30f1d62b..eb7f5a3fefd4 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts
@@ -9,7 +9,7 @@ 
 
 #include <dt-bindings/input/input.h>
 
-#include "meson-gxl-s905x.dtsi"
+#include "meson-gxl-s805x.dtsi"
 
 / {
 	compatible = "amlogic,p241", "amlogic,s805x", "amlogic,meson-gxl";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi
new file mode 100644
index 000000000000..f9d705648426
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi
@@ -0,0 +1,24 @@ 
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 BayLibre SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ */
+
+#include "meson-gxl-s905x.dtsi"
+
+/ {
+	compatible = "amlogic,s805x", "amlogic,meson-gxl";
+};
+
+/* The S805X Package doesn't seem to handle the 744MHz OPP correctly */
+&mali {
+	assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
+			  <&clkc CLKID_MALI_0>,
+			  <&clkc CLKID_MALI>; /* Glitch free mux */
+	assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
+				 <0>, /* Do Nothing */
+				 <&clkc CLKID_MALI_0>;
+	assigned-clock-rates = <0>, /* Do Nothing */
+			       <666666666>,
+			       <0>; /* Do Nothing */
+};