diff --git a/plat/ti/k3/common/k3_helpers.S b/plat/ti/k3/common/k3_helpers.S
index 3dfdda4..1ab1af5 100644
--- a/plat/ti/k3/common/k3_helpers.S
+++ b/plat/ti/k3/common/k3_helpers.S
@@ -73,21 +73,17 @@
 	lsr	x1, x1, #MPIDR_AFF1_SHIFT
 	and	x0, x0, #MPIDR_CPU_MASK
 
-#if K3_CLUSTER1_MSMC_PORT != UNUSED
-	cmp	x1, #K3_CLUSTER0_MSMC_PORT
+	cmp	x1, 0
 	b.eq out
 	add	x0, x0, #K3_CLUSTER0_CORE_COUNT
-#if K3_CLUSTER2_MSMC_PORT != UNUSED
-	cmp	x1, #K3_CLUSTER1_MSMC_PORT
+
+	cmp	x1, 1
 	b.eq out
 	add	x0, x0, #K3_CLUSTER1_CORE_COUNT
-#if K3_CLUSTER3_MSMC_PORT != UNUSED
-	cmp	x1, #K3_CLUSTER2_MSMC_PORT
+
+	cmp	x1, 2
 	b.eq out
 	add	x0, x0, #K3_CLUSTER2_CORE_COUNT
-#endif /* K3_CLUSTER3_MSMC_PORT != UNUSED */
-#endif /* K3_CLUSTER2_MSMC_PORT != UNUSED */
-#endif /* K3_CLUSTER1_MSMC_PORT != UNUSED */
 
 out:
 	ret
diff --git a/plat/ti/k3/common/k3_topology.c b/plat/ti/k3/common/k3_topology.c
index 2b98acb..139f1fd 100644
--- a/plat/ti/k3/common/k3_topology.c
+++ b/plat/ti/k3/common/k3_topology.c
@@ -13,15 +13,9 @@
 	PLATFORM_SYSTEM_COUNT,
 	PLATFORM_CLUSTER_COUNT,
 	K3_CLUSTER0_CORE_COUNT,
-#if K3_CLUSTER1_MSMC_PORT != UNUSED
 	K3_CLUSTER1_CORE_COUNT,
-#endif /* K3_CLUSTER1_MSMC_PORT != UNUSED */
-#if K3_CLUSTER2_MSMC_PORT != UNUSED
 	K3_CLUSTER2_CORE_COUNT,
-#endif /* K3_CLUSTER2_MSMC_PORT != UNUSED */
-#if K3_CLUSTER3_MSMC_PORT != UNUSED
 	K3_CLUSTER3_CORE_COUNT,
-#endif /* K3_CLUSTER3_MSMC_PORT != UNUSED */
 };
 
 const unsigned char *plat_get_power_domain_tree_desc(void)
@@ -31,42 +25,22 @@
 
 int plat_core_pos_by_mpidr(u_register_t mpidr)
 {
-	unsigned int cpu_id;
+	unsigned int cluster = MPIDR_AFFLVL1_VAL(mpidr);
+	unsigned int core = MPIDR_AFFLVL0_VAL(mpidr);
 
-	mpidr &= MPIDR_AFFINITY_MASK;
-
-	if (mpidr & ~(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK))
+	if (MPIDR_AFFLVL3_VAL(mpidr) > 0 ||
+	    MPIDR_AFFLVL2_VAL(mpidr) > 0) {
 		return -1;
-
-	cpu_id = MPIDR_AFFLVL0_VAL(mpidr);
+	}
 
-	switch (MPIDR_AFFLVL1_VAL(mpidr)) {
-	case K3_CLUSTER0_MSMC_PORT:
-		if (cpu_id < K3_CLUSTER0_CORE_COUNT)
-			return cpu_id;
+	if (cluster > 0)
+		core += K3_CLUSTER0_CORE_COUNT;
+	if (cluster > 1)
+		core += K3_CLUSTER1_CORE_COUNT;
+	if (cluster > 2)
+		core += K3_CLUSTER2_CORE_COUNT;
+	if (cluster > 3)
 		return -1;
-#if K3_CLUSTER1_MSMC_PORT != UNUSED
-	case K3_CLUSTER1_MSMC_PORT:
-		if (cpu_id < K3_CLUSTER1_CORE_COUNT)
-			return K3_CLUSTER0_CORE_COUNT + cpu_id;
-		return -1;
-#endif /* K3_CLUSTER1_MSMC_PORT != UNUSED */
-#if K3_CLUSTER2_MSMC_PORT != UNUSED
-	case K3_CLUSTER2_MSMC_PORT:
-		if (cpu_id < K3_CLUSTER2_CORE_COUNT)
-			return K3_CLUSTER0_CORE_COUNT +
-			       K3_CLUSTER1_CORE_COUNT + cpu_id;
-		return -1;
-#endif /* K3_CLUSTER2_MSMC_PORT != UNUSED */
-#if K3_CLUSTER3_MSMC_PORT != UNUSED
-	case K3_CLUSTER3_MSMC_PORT:
-		if (cpu_id < K3_CLUSTER3_CORE_COUNT)
-			return K3_CLUSTER0_CORE_COUNT +
-			       K3_CLUSTER1_CORE_COUNT +
-			       K3_CLUSTER2_CORE_COUNT + cpu_id;
-		return -1;
-#endif /* K3_CLUSTER3_MSMC_PORT != UNUSED */
-	default:
-		return -1;
-	}
+
+	return core;
 }
