From 13cbfa1606492e841093a82f91e1569c39d51f3a Mon Sep 17 00:00:00 2001 From: Antony Arun T Date: Wed, 19 Dec 2018 18:03:21 +0530 Subject: [PATCH] ipq6018: enable reset support Change-Id: I617c1373dda9c3c384f29d5c0f8b089a42e332a1 Signed-off-by: Antony Arun T --- board/qca/arm/ipq6018/ipq6018.c | 22 ++++++++++++++++++++++ include/configs/ipq6018.h | 6 ++++++ 2 files changed, 28 insertions(+) diff --git a/board/qca/arm/ipq6018/ipq6018.c b/board/qca/arm/ipq6018/ipq6018.c index 619878c0a8..6892b3f34f 100644 --- a/board/qca/arm/ipq6018/ipq6018.c +++ b/board/qca/arm/ipq6018/ipq6018.c @@ -19,6 +19,8 @@ #include #include #include +#include +#include #include #include #include @@ -646,8 +648,28 @@ unsigned long timer_read_counter(void) return 0; } +void psci_sys_reset(void) +{ + __invoke_psci_fn_smc(0x84000009, 0, 0, 0); +} + +void qti_scm_pshold(void) +{ + int ret; + + ret = scm_call(SCM_SVC_BOOT, SCM_CMD_TZ_PSHOLD, NULL, 0, NULL, 0); + if (ret != 0) + writel(0, GCNT_PSHOLD); +} + void reset_cpu(unsigned long a) { + reset_crashdump(); + if (is_scm_armv8()) { + psci_sys_reset(); + } else { + qti_scm_pshold(); + } while(1); } diff --git a/include/configs/ipq6018.h b/include/configs/ipq6018.h index e00461369f..2a6a0a8659 100644 --- a/include/configs/ipq6018.h +++ b/include/configs/ipq6018.h @@ -286,4 +286,10 @@ extern loff_t board_env_size; * By default we are disabling it */ /*#define CONFIG_IPQ_REPORT_L2ERR*/ +/* + * Other commands + */ + +#define CONFIG_ARMV7_PSCI + #endif /* _IPQ6018_H */