xref: /aosp_15_r20/external/arm-trusted-firmware/plat/mediatek/mt6795/plat_topology.c (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park /*
2*54fd6939SJiyong Park  * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
3*54fd6939SJiyong Park  *
4*54fd6939SJiyong Park  * SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park  */
6*54fd6939SJiyong Park 
7*54fd6939SJiyong Park #include <platform_def.h>
8*54fd6939SJiyong Park 
9*54fd6939SJiyong Park #include <arch.h>
10*54fd6939SJiyong Park #include <lib/psci/psci.h>
11*54fd6939SJiyong Park 
plat_get_aff_count(unsigned int aff_lvl,unsigned long mpidr)12*54fd6939SJiyong Park unsigned int plat_get_aff_count(unsigned int aff_lvl, unsigned long mpidr)
13*54fd6939SJiyong Park {
14*54fd6939SJiyong Park 	/* Report 1 (absent) instance at levels higher that the cluster level */
15*54fd6939SJiyong Park 	if (aff_lvl > MPIDR_AFFLVL1)
16*54fd6939SJiyong Park 		return PLATFORM_SYSTEM_COUNT;
17*54fd6939SJiyong Park 
18*54fd6939SJiyong Park 	if (aff_lvl == MPIDR_AFFLVL1)
19*54fd6939SJiyong Park 		return PLATFORM_CLUSTER_COUNT;
20*54fd6939SJiyong Park 
21*54fd6939SJiyong Park 	return mpidr & 0x100 ? PLATFORM_CLUSTER1_CORE_COUNT :
22*54fd6939SJiyong Park 			       PLATFORM_CLUSTER0_CORE_COUNT;
23*54fd6939SJiyong Park }
24*54fd6939SJiyong Park 
plat_get_aff_state(unsigned int aff_lvl,unsigned long mpidr)25*54fd6939SJiyong Park unsigned int plat_get_aff_state(unsigned int aff_lvl, unsigned long mpidr)
26*54fd6939SJiyong Park {
27*54fd6939SJiyong Park 	return aff_lvl <= MPIDR_AFFLVL2 ? PSCI_AFF_PRESENT : PSCI_AFF_ABSENT;
28*54fd6939SJiyong Park }
29*54fd6939SJiyong Park 
mt_setup_topology(void)30*54fd6939SJiyong Park int mt_setup_topology(void)
31*54fd6939SJiyong Park {
32*54fd6939SJiyong Park 	/* [TODO] Make topology configurable via SCC */
33*54fd6939SJiyong Park 	return 0;
34*54fd6939SJiyong Park }
35