summaryrefslogtreecommitdiff
path: root/plat/imx/imx8m/imx8mm/gpc.c
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2020-04-01 17:22:36 +0800
committerPeng Fan <peng.fan@nxp.com>2020-04-07 15:52:10 +0800
commitbfbf223ed855d31085d0a6469aa94357ae0c3674 (patch)
tree9647c324db3a967fddf7f26637ad417561329f8d /plat/imx/imx8m/imx8mm/gpc.c
parent3511e46772a04136bbec67267360304c701edc6a (diff)
MLK-23727 imx8mp/n: support stop M7
Support stop M7 with SIP call. Per IC team, to rekick M7 need follow steps. If M7 already in WFI, perform below steps. a) Set [0x303A_002C].0=0 [ request SLEEPHOLDREQn ] b) Wait [0x303A_00EC].1 = 0 [ wait SLEEPHOLDACKn ] c) Set GPR.CPUWAIT=1 d) Set [0x303A_002C].0=1 [ de-assert SLEEPHOLDREQn ] e) Set SRC_M7_RCR[3:0] = 0xE0 [ reset M7 core/plat ] f) Wait SRC_M7_RCR[3:0] = 0x8 g) Init TCM or DDR h) Set GPR.INITVTOR i) Set GPR.CPUWAIT=0, M7 starting running Add a timeout check, if timeout, still perform force reset, in this way no need to rely on M7 team's image wfi support ready. Return a1,a2 to caller to check timeout or reset fail. Reviewed-by: Jacky Bai <ping.bai@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'plat/imx/imx8m/imx8mm/gpc.c')
-rw-r--r--plat/imx/imx8m/imx8mm/gpc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/plat/imx/imx8m/imx8mm/gpc.c b/plat/imx/imx8m/imx8mm/gpc.c
index 33a83613..4df1b9a4 100644
--- a/plat/imx/imx8m/imx8mm/gpc.c
+++ b/plat/imx/imx8m/imx8mm/gpc.c
@@ -422,7 +422,7 @@ void imx_gpc_init(void)
}
int imx_src_handler(uint32_t smc_fid, u_register_t x1, u_register_t x2,
- u_register_t x3)
+ u_register_t x3, void *handle)
{
uint32_t val;