aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/arm-trusted-firmware-mediatek/patches/0002-mediatek-mt7622-initialize-watchdog-after-DDR-init.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/boot/arm-trusted-firmware-mediatek/patches/0002-mediatek-mt7622-initialize-watchdog-after-DDR-init.patch')
-rw-r--r--package/boot/arm-trusted-firmware-mediatek/patches/0002-mediatek-mt7622-initialize-watchdog-after-DDR-init.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/package/boot/arm-trusted-firmware-mediatek/patches/0002-mediatek-mt7622-initialize-watchdog-after-DDR-init.patch b/package/boot/arm-trusted-firmware-mediatek/patches/0002-mediatek-mt7622-initialize-watchdog-after-DDR-init.patch
new file mode 100644
index 0000000000..d8905986e2
--- /dev/null
+++ b/package/boot/arm-trusted-firmware-mediatek/patches/0002-mediatek-mt7622-initialize-watchdog-after-DDR-init.patch
@@ -0,0 +1,40 @@
+From 2a012775b3ab6e72091c8be1c2d4bf5972407eb5 Mon Sep 17 00:00:00 2001
+From: Daniel Golle <daniel@makrotopia.org>
+Date: Sat, 27 Aug 2022 21:38:33 +0100
+Subject: [PATCH] mediatek: mt7622: initialize watchdog after DDR init
+
+Initializing the WDT before memory calibration breaks reboot at least
+on some MT7622 boards like the Bananapi BPi-R64:
+NOTICE: BL2: v2.7(release):OpenWrt v2022-08-18-9c9c4994-2 (mt7622-emmc-2ddr)
+NOTICE: BL2: Built : 04:00:25, Aug 27 2022
+ERROR: Cannot find any pass-window
+ERROR: no DATLAT taps pass, DATLAT calibration fail!
+ERROR: DATLAT calibration fail, write back to 20!
+ERROR: EMI: complex R/W mem test failed: -2
+
+Move watchdog initialization to happen only after memory initialization
+has completed to avoid the problem.
+
+Signed-off-by: Daniel Golle <daniel@makrotopia.org>
+---
+ plat/mediatek/mt7622/bl2_plat_setup.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/plat/mediatek/mt7622/bl2_plat_setup.c
++++ b/plat/mediatek/mt7622/bl2_plat_setup.c
+@@ -277,7 +277,6 @@ void bl2_platform_setup(void)
+ plat_mt_cpuxgpt_init();
+ generic_delay_timer_init();
+
+- mtk_wdt_init();
+ mtk_pin_init();
+ #ifndef USING_BL2PL
+ mtk_pll_init();
+@@ -285,6 +284,7 @@ void bl2_platform_setup(void)
+ mtk_pwrap_init();
+ mtk_pmic_init();
+ mtk_mem_init();
++ mtk_wdt_init();
+
+ mtk_io_setup();
+ }