diff options
author | Christoph Muellner <christoph.muellner@theobroma-systems.com> | 2018-12-06 20:00:14 +0100 |
---|---|---|
committer | Christoph Muellner <christoph.muellner@theobroma-systems.com> | 2019-04-29 12:09:07 +0200 |
commit | 739fe95bb63430789aa045603e5f1127294189d9 (patch) | |
tree | c5fdefa5e8b436aba458c262656defe0dcf2dd12 /arch | |
parent | ae9b0ca75008889b74c43814ac8d2a2bd98f789e (diff) |
rockchip: rk3399-puma: Reset from SPL on error.
Every now an then we experience errors in SPL
(most likely "DRAM init failed").
In such cases, the system hangs and requires a power-cycle
from the user.
While a power-cycle might be a proper way to address
the symptom, we could also call do_reset() instead
of hanging. That would allow to "heal" spurious issues.
Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-rockchip/rk3399-board-spl.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm/mach-rockchip/rk3399-board-spl.c b/arch/arm/mach-rockchip/rk3399-board-spl.c index ccc136f388..257cb0c8b6 100644 --- a/arch/arm/mach-rockchip/rk3399-board-spl.c +++ b/arch/arm/mach-rockchip/rk3399-board-spl.c @@ -215,7 +215,7 @@ void board_init_f(ulong dummy) ret = spl_early_init(); if (ret) { debug("spl_early_init() failed: %d\n", ret); - hang(); + do_reset(NULL, 0, 0, NULL); } /* @@ -240,13 +240,13 @@ void board_init_f(ulong dummy) ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl); if (ret) { pr_err("Pinctrl init failed: %d\n", ret); - return; + do_reset(NULL, 0, 0, NULL); } ret = uclass_get_device(UCLASS_RAM, 0, &dev); if (ret) { pr_err("DRAM init failed: %d\n", ret); - return; + do_reset(NULL, 0, 0, NULL); } } |