summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plat/imx/imx8mm/gpc.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/plat/imx/imx8mm/gpc.c b/plat/imx/imx8mm/gpc.c
index 319e1054..bfa0c5c1 100644
--- a/plat/imx/imx8mm/gpc.c
+++ b/plat/imx/imx8mm/gpc.c
@@ -19,7 +19,6 @@
#include <fsl_sip.h>
#include <soc.h>
-#define GPC_MST_CPU_MAPPING 0x18
#define GPC_PGC_ACK_SEL_A53 0x24
#define GPC_IMR1_CORE0_A53 0x30
#define GPC_IMR1_CORE1_A53 0x40
@@ -35,6 +34,7 @@
#define PGC_PCR 0
+/* BSC */
#define LPCR_A53_BSC 0x0
#define LPCR_A53_BSC2 0x108
#define LPCR_M4 0x8
@@ -50,8 +50,9 @@
#define A53_LPM_STOP 0xa
#define A53_CLK_ON_LPM (1 << 14)
-#define SRC_GPR1_OFFSET 0x74
+#define MST_CPU_MAPPING 0x18
+#define SRC_GPR1_OFFSET 0x74
/* AD */
#define LPCR_A53_AD 0x4
@@ -612,10 +613,13 @@ void imx_gpc_init(void)
val |= 0x30c00000;
/* clear the MASTER0 LPM handshake */
val &= ~(1 << 6);
- val &= ~(1 << 7);
- val &= ~(1 << 8);
mmio_write_32(IMX_GPC_BASE + LPCR_A53_BSC, val);
+ /* clear MASTER1&MASTER2 mapping in CPU0(A53) */
+ val = mmio_read_32(IMX_GPC_BASE + MST_CPU_MAPPING);
+ val &= ~(0x3 << 1);
+ mmio_write_32(IMX_GPC_BASE + MST_CPU_MAPPING, val);
+
/* mask M4 DSM trigger if M4 is NOT enabled */
val = mmio_read_32(IMX_GPC_BASE + LPCR_M4);
val |= 1 << 31;