2 * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
4 * SPDX-License-Identifier: BSD-3-Clause
10 #include "platform_def.h"
12 unsigned char ls1043_power_domain_tree_desc
[LS1043_CLUSTER_COUNT
+ 1];
15 CASSERT(LS1043_CLUSTER_COUNT
&& LS1043_CLUSTER_COUNT
<= 256,
16 assert_invalid_ls1043_cluster_count
);
18 /*******************************************************************************
19 * This function dynamically constructs the topology according to
20 * LS1043_CLUSTER_COUNT and returns it.
21 ******************************************************************************/
22 const unsigned char *plat_get_power_domain_tree_desc(void)
26 ls1043_power_domain_tree_desc
[0] = LS1043_CLUSTER_COUNT
;
28 for (i
= 0; i
< LS1043_CLUSTER_COUNT
; i
++)
29 ls1043_power_domain_tree_desc
[i
+ 1] =
30 LS1043_MAX_CPUS_PER_CLUSTER
;
32 return ls1043_power_domain_tree_desc
;
35 /*******************************************************************************
36 * This function returns the core count within the cluster corresponding to
38 ******************************************************************************/
39 unsigned int plat_ls_get_cluster_core_count(u_register_t mpidr
)
41 return LS1043_MAX_CPUS_PER_CLUSTER
;
44 /*******************************************************************************
45 * This function implements a part of the critical interface between the psci
46 * generic layer and the platform that allows the former to query the platform
47 * to convert an MPIDR to a unique linear index. An error code (-1) is returned
48 * in case the MPIDR is invalid.
49 ******************************************************************************/
50 int plat_core_pos_by_mpidr(u_register_t mpidr
)
52 if (ls_check_mpidr(mpidr
) == -1)
55 return plat_ls_calc_core_pos(mpidr
);