arm-trusted-firmware/plat/ti/k3/common/k3_topology.c
Andrew F. Davis a82bf5ad1b ti: k3: common: Remove MSMC port definitions
The MSMC port defines were added to help in the case when some ports
are not connected and have no cores attached. We can get the same
functionality by defined the number of cores on that port to zero.
This simplifies several code paths, do this here.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: I3247fe37af7b86c3227e647b4f617fab70c8ee8a
2019-04-30 09:41:06 -04:00

47 lines
966 B
C

/*
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <platform_def.h>
#include <lib/psci/psci.h>
/* The power domain tree descriptor */
static unsigned char power_domain_tree_desc[] = {
PLATFORM_SYSTEM_COUNT,
PLATFORM_CLUSTER_COUNT,
K3_CLUSTER0_CORE_COUNT,
K3_CLUSTER1_CORE_COUNT,
K3_CLUSTER2_CORE_COUNT,
K3_CLUSTER3_CORE_COUNT,
};
const unsigned char *plat_get_power_domain_tree_desc(void)
{
return power_domain_tree_desc;
}
int plat_core_pos_by_mpidr(u_register_t mpidr)
{
unsigned int cluster = MPIDR_AFFLVL1_VAL(mpidr);
unsigned int core = MPIDR_AFFLVL0_VAL(mpidr);
if (MPIDR_AFFLVL3_VAL(mpidr) > 0 ||
MPIDR_AFFLVL2_VAL(mpidr) > 0) {
return -1;
}
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;
return core;
}